BE-512: HashQL: Allow cross-backend transitions for SwitchInt terminators#8696
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
PR SummaryMedium Risk Overview Tests and the terminator placement snapshot were updated to expect those edges on Reviewed by Cursor Bugbot for commit 7323f1e. Bugbot is set up for automated code reviews on this repo. Configure here. |
🤖 Augment PR SummarySummary: Enables cross-backend transitions for blocks ending in 🤖 Was this summary useful? React with 👍 or 👎 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## bm/be-524-hashql-remove-island-dag #8696 +/- ##
======================================================================
- Coverage 59.11% 59.10% -0.01%
======================================================================
Files 1341 1341
Lines 129570 129566 -4
Branches 5849 5849
======================================================================
- Hits 76589 76585 -4
Misses 52078 52078
Partials 903 903
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
11715f8 to
bb97a73
Compare
5203abe to
026ce7b
Compare
bb97a73 to
7c2c99f
Compare
026ce7b to
b7cf577
Compare
7c2c99f to
fed3275
Compare
b7cf577 to
db1e44d
Compare
fed3275 to
2ffc3ed
Compare
db1e44d to
0a4f75a
Compare
2ffc3ed to
5aa1fb4
Compare
0a4f75a to
40c3c68
Compare
40c3c68 to
f9a8499
Compare
f9a8499 to
c883c9e
Compare
2fc2314 to
c62ac8e
Compare
c883c9e to
7323f1e
Compare
c62ac8e to
3dfb99e
Compare

🌟 What is the purpose of this PR?
SwitchIntterminators were previously blocked from generating cross-backend transitions during terminator placement, based on an assumption that coordinating branches across backends would be too complex. This restriction has been lifted, allowingSwitchIntto behave the same asGotoand permit cross-backend transitions. This enables more flexible execution placement for conditional branching logic.🔍 What does this change?
SwitchIntnow callsadd_goto_transitionsinstead of being a no-op, enabling cross-backend edge costs to be populated for blocks ending with aSwitchIntterminator.switchint_blocks_cross_backendhas been renamed toswitchint_allows_cross_backendand updated to assert that theInterpreter -> Embeddingtransition is now reachable with the expected cost.switchint_edge_targets_are_branch_specifictest has been updated to assert that cross-backend transitions are present rather than absent.I->EandP->Etransitions onedge[1].Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🛡 What tests cover this?
terminator_placement/tests.rscoveringSwitchIntcross-backend transition behaviour.❓ How to test this?
cargo testinlibs/@local/hashql/mir.switchint_allows_cross_backendtest.